%% @author Digi-Spike
%% @doc @todo Add description to maxteilsumme1.


-module(maxteilsumme1mitzugriff).
%% ====================================================================
%% API functions
%% ====================================================================
-export([maxTeilsumme1/1]).



%% ====================================================================
%% Internal functions
%% ====================================================================

maxTeilsumme1(Folge) -> 
	for(Folge,{0,{1,1}},{0,{1,1}},0).

for([],{BisherigesMax,{BisInVorn,BisInHinten}},_,Zugriff) -> 
	{BisherigesMax,{BisInVorn,BisInHinten},Zugriff};

for(Folge,{BisherigesMax,{BisInVorn,BisInHinten}},{RandMax,{RandInVorn,RandInHinten}},Zugriff) ->
							if (RandMax+hd(Folge)) =< 0 -> for(tl(Folge),{BisherigesMax,{BisInVorn,BisInHinten}},{0,{RandInHinten+1,RandInHinten+1}},Zugriff+2);
							   (RandMax+hd(Folge)) > BisherigesMax -> for(tl(Folge),{RandMax+hd(Folge),{RandInVorn,RandInHinten}},{RandMax+hd(Folge),{RandInVorn,RandInHinten+1}},Zugriff+4);
							   (RandMax+hd(Folge)) =< BisherigesMax -> for(tl(Folge),{BisherigesMax,{BisInVorn,BisInHinten}},{RandMax+hd(Folge),{RandInVorn,RandInHinten+1}},Zugriff+3)
							end.

%%maxteilsumme1mitzugriff:maxTeilsumme1(Folge). Ausgabe
